home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / strlibs.zip / STREND.ASM < prev    next >
Assembly Source File  |  1993-01-04  |  1KB  |  49 lines

  1. ;       Static Name Aliases
  2. ;
  3.         TITLE   strend
  4. ;       NAME    strend.C
  5.  
  6. ;   strend(s) returns a character pointer to the NUL which ends s.  That
  7. ;   is,  strend(s)-s  ==  strlen(s). This is useful for adding things at
  8. ;   the end of strings.  It is redundant, because  strchr(s,'\0')  could
  9. ;   be used instead, but this is clearer and faster.
  10.  
  11.         .287
  12. _TEXT   SEGMENT  BYTE PUBLIC 'CODE'
  13. _TEXT   ENDS
  14. _DATA   SEGMENT  WORD PUBLIC 'DATA'
  15. _DATA   ENDS
  16. CONST   SEGMENT  WORD PUBLIC 'CONST'
  17. CONST   ENDS
  18. _BSS    SEGMENT  WORD PUBLIC 'BSS'
  19. _BSS    ENDS
  20. DGROUP  GROUP   CONST,  _BSS,   _DATA
  21.         ASSUME  CS: _TEXT, DS: DGROUP, SS: DGROUP, ES: DGROUP
  22. EXTRN   __chkstk:NEAR
  23. _TEXT      SEGMENT
  24.         PUBLIC  _strend
  25. _strend PROC NEAR
  26.         push    bp
  27.         mov     bp,sp
  28.         push    di
  29.  
  30. ;       s = 4
  31. ;       register di = s
  32.  
  33.         mov     di,[bp+4]       ;s
  34.         xor     al,al
  35.         xor     cx,cx
  36.         dec     cx
  37.         repne   scasb
  38.  
  39.         mov     ax,di
  40.         dec     ax
  41.         pop     di
  42.         mov     sp,bp
  43.         pop     bp
  44.         ret
  45.  
  46. _strend ENDP
  47. _TEXT   ENDS
  48. END
  49.